Multiple software programs that run on a computing device often share libraries provided by the based operating system employed at the computing device. For example, these libraries can be used by the software programs to access various library or operating system functions (e.g., reading files, writing files, file management, network communications, inter-process communications, memory management, string manipulations, user interface manipulations, mathematics functions, etc.). Typically, these libraries change when the operating system changes or is updated; for example, upgrading to a newer version of an operating system can change the functions presented in one or more shared libraries, change versions and arguments used in these functions, and/or change functionalities of some, none or all of the library functions. As a result, a software program developed for one operating system may not work on another operating system and, similarly, upgrading to the new operating system may cause a software program not to work on the new or updated operating system. To determine whether a software program is executable on a new or updated operating system, the software program is typically re-compiled to run on the new or updated operating system.
The aforementioned re-compiling and re-running of the software program is further complicated as software security or vulnerability issues are raised when multiple software programs are involved and further, they include customer-generated software programs (e.g., third-party software programs that are created and provided by sources independent of the one providing the operating system and shared libraries). One way to highlight these vulnerabilities or security issues is to provide a security report to customers so that they may investigate and correct the vulnerabilities. These tasks, however, require a customer to employ an entire team of software developers to tediously investigate each aspect of these security issues, including software components associated with the vulnerabilities. Nevertheless, these teams often fall short of completing their tasks within the allocated time period, such as due to the limited and generic nature of the security reports, the tedious and manual nature of the process, and unavoidable human errors.